﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using System.Configuration;



namespace Librerias
{
    /// <summary>
    /// Clase EN ENCursar
    /// </summary>
    public class ENCursar:ENBase
    {

        #region variables
        /// <summary>
        /// Identificador alumno por correoUsuario
        /// </summary>
        private string correo;
        /// <summary>
        /// Codigo de la asignatura
        /// </summary>
        private string codigo;
        /// <summary>
        /// Año del curso
        /// </summary>
        private DateTime anyo;
        /// <summary>
        /// nota practica
        /// </summary>
        private float notaPractica;
        /// <summary>
        /// nota teoria
        /// </summary>
        private float notaTeoria;
        /// <summary>
        /// nota final
        /// </summary>
        private float notaFinal;

        CADCursar cad = new CADCursar();
        private System.Windows.Forms.DataGridViewTextBoxColumn curCorreo;
        private System.Windows.Forms.DataGridViewTextBoxColumn curAnyo;
        private System.Windows.Forms.DataGridViewTextBoxColumn curCodigo;
        private System.Windows.Forms.DataGridViewTextBoxColumn curNotaPractica;
        private System.Windows.Forms.DataGridViewTextBoxColumn curNotaTeoria;
        private System.Windows.Forms.DataGridViewTextBoxColumn curNotaFinal;

        #endregion

       // public ENCursar(string uncorreo, string

        #region get set

        /// <summary>
        /// Identificador del alumno por correoUsuario
        /// </summary>
        public string Correo
        {
            get { return correo; }
            set { correo = value; }
        }

        /// <summary>
        /// Codigo de la asignatura
        /// </summary>
        public string Codigo
        {
            get { return codigo; }
            set { codigo = value; }
        }

        /// <summary>
        /// Año de la asignatura
        /// </summary>
        public DateTime Anyo
        {
            get { return anyo; }
            set { anyo= value; }
        }

        /// <summary>
        /// Nota de practica
        /// </summary>
        public float NotaPractica
        {
            get { return notaPractica; }
            set { notaPractica = value; }
        }

        /// <summary>
        /// Nota teoria
        /// </summary>
        public float NotaTeoria
        {
            get { return notaTeoria; }
            set { notaTeoria = value; }
        }

        /// <summary>
        /// Nota final
        /// </summary>
        public float NotaFinal
        {
            get { return notaFinal; }
            set { notaFinal = value; }
        }

        #endregion

        #region constructores

        /// <summary>
        /// Constructor vacío
        /// </summary>
        public ENCursar()
        {
            correo = string.Empty;
            anyo= DateTime.Now;
            codigo = string.Empty;
            notaPractica = 0;
            notaTeoria = 0;
            notaFinal = 0;
        }

      
        /// <summary>
        /// Const parametrizado
        /// </summary>
        /// <param name="uncorreo">correo</param>
        /// <param name="unanyo">año</param>
        /// <param name="uncodigo">código</param>
        /// <param name="unnotaPractica">nota Páctica</param>
        /// <param name="unnotaTeoria">nota Teoría</param>
        /// <param name="unnotaFinal">nota Final</param>
        public ENCursar(string uncorreo, DateTime unanyo, string uncodigo, float unnotaPractica, float unnotaTeoria , float unnotaFinal)
        {
            correo = uncorreo;
            anyo = unanyo;
            codigo = uncodigo;
            notaTeoria = unnotaTeoria;
            notaPractica = unnotaPractica;
            notaFinal = unnotaFinal;
        }

        /// <summary>
        /// Constructor a partir de usuario y asignatura
        /// </summary>
        /// <param name="usuario">usuario</param>
        /// <param name="asign">asignatura</param>
         public ENCursar(string usuario, string asign)
        {
            correo = string.Empty;
            anyo = DateTime.Now;
            codigo = asign;
            notaPractica = 0;
            notaTeoria = 0;
            notaFinal = 0;
        }

        /// <summary>
        /// Dibuja ENCursar
        /// </summary>
        /// <param name="curCorreo">correo</param>
        /// <param name="curAnyo">año</param>
        /// <param name="curCodigo">código</param>
        /// <param name="curNotaPractica">nota P</param>
        /// <param name="curNotaTeoria">nota T</param>
        /// <param name="curNotaFinal">nota F</param>
            public ENCursar(System.Windows.Forms.DataGridViewTextBoxColumn curCorreo, System.Windows.Forms.DataGridViewTextBoxColumn curAnyo, System.Windows.Forms.DataGridViewTextBoxColumn curCodigo, System.Windows.Forms.DataGridViewTextBoxColumn curNotaPractica, System.Windows.Forms.DataGridViewTextBoxColumn curNotaTeoria, System.Windows.Forms.DataGridViewTextBoxColumn curNotaFinal)
            {
                // TODO: Complete member initialization
                this.curCorreo = curCorreo;
                this.curAnyo = curAnyo;
                this.curCodigo = curCodigo;
                this.curNotaPractica = curNotaPractica;
                this.curNotaTeoria = curNotaTeoria;
                this.curNotaFinal = curNotaFinal;
            }

        
        #endregion

        #region llamadas a los cads
        /// <summary>
        /// Si ya esta matriculado
        /// </summary>
        /// <param name="alumnoAComprobar">alumno</param>
        /// <param name="asignaturaAComprobar">asignatura</param>
        /// <returns></returns>
        public bool EsYaMatriculadoEnEstaAsignatura(string alumnoAComprobar, string asignaturaAComprobar)
        {
            return cad.EsYaMatriculadoEnEstaAsignatura(alumnoAComprobar,asignaturaAComprobar);
        }

        /// <summary>
        /// Persiste ENCursar a partir de EN
        /// </summary>
        /// <param name="Cursar">EN</param>
        public void AltaCursar(ENCursar Cursar)
        {
            cad.AltaCursar(Cursar);
        }

        /// <summary>
        /// Persiste ENCursar
        /// </summary>
        public void AltaCursar()
        {
            cad.AltaCursar(this);
        }

        /// <summary>
        /// Evalua una ENCursar
        /// </summary>
        public void Evaluar()
        {
            cad.Evaluar(this);
        }

        /// <summary>
        /// Borra ENCursar a partir de una EN
        /// </summary>
        /// <param name="Cursar">EN</param>
        public void BorraCursar(ENCursar Cursar)
        {
            cad.BorraCursar(Cursar);
        }

        /// <summary>
        /// Consulta notas de un ENCursar
        /// </summary>
        /// <returns>DataTable con ellas</returns>
        public DataTable ConsultaNotas()
        {
             return cad.ConsultaNotas();
        }

        /// <summary>
        /// Consulta notas dada asignatura, cadena, tipo
        /// </summary>
        /// <param name="asign">asignatura</param>
        /// <param name="cadena">cadena</param>
        /// <param name="tipo">tipo</param>
        /// <returns></returns>
        public DataTable ConsultaNotas(string asign, string cadena, int tipo)
        {
            return cad.ConsultaNotas(asign, cadena,tipo);
        }

        /// <summary>
        /// Consulta alumnos por la asignatura
        /// </summary>
        /// <param name="asig">asignatura</param>
        /// <returns>DataTable con ellos</returns>
        public DataTable ConsultaAlumnosPorAsignatura(string asig)
        {
            return cad.ConsultaAlumnosPorAsignatura(asig);
        }

        public DataTable ConsultaNotasPorAlumno(string asig)
        {
            return cad.ConsultaNotasPorAlumno(asig);
        }
        public DataTable ConsultaNotasPorAlumnoNoVacias(string asig)
        {
            return cad.ConsultaNotasPorAlumnoNoVacias(asig);
        }
        public DataTable ConsultaNotasPuestasPorProfesor(string asig)
        {
            return cad.ConsultaNotasPuestasPorProfesor(asig);
        }

        public DataTable GetAsignaturasAlumno(string alu)
        {
            return cad.GetAsignaturasAlumno(alu);
        }
      
        #endregion
    }
     


}
